<?php

/**
 * sfBasicSecurityFilterSart
 *
 * @package    devsar
 * @subpackage lib
 * @author     David Joan Tataje Mendoza <davidtataje@vemultimedios.org>
 */
class sfBasicSecurityFilterCargaLectiva extends sfBasicSecurityFilter
{
  public function execute($filterChain)
  {
    // desactivando seguridad para el login y secure
    if (
      (sfConfig::get('sf_login_module') == $this->context->getModuleName()) && (sfConfig::get('sf_login_action') == $this->context->getActionName())
      ||
      (sfConfig::get('sf_secure_module') == $this->context->getModuleName()) && (sfConfig::get('sf_secure_action') == $this->context->getActionName())
    )
    {
      $filterChain->execute();

      return;
    }

    if (!$this->context->getUser()->estaAutenticado())
    {
      // el usuario no esta autenticado
      $this->forwardToLoginAction();
    }

    // El usuario esta autenticado
  	$ruta_actual = $this->context->getRouting()->getCurrentRouteName();
  	//Deb::print_r($ruta_actual);
    if ($ruta_actual && !$this->getUser()->tienePermiso($ruta_actual))
    {
      // El usuario no tiene acceso
      $this->forwardToSecureAction();
    }
    
  //  $estado = Doctrine::getTable('SARTTELECENTRO')->findOneByTelcEstado('Activo');
    
    //el telecentro esta desactivado
    //if(!$estado)
   // {
    //  $this->forwardToInactiveAction();	
  //  }
   // // El usuario tiene acceso, puede continuar
    $filterChain->execute();
  }
  
  protected function forwardToInactiveAction()
  {
    $this->context->getController()->forward(sfConfig::get('sf_login_module'), sfConfig::get('sf_login_action'));

    throw new sfStopException();
  }
  
  
  protected function getUser()
  {
  	return $this->context->getUser();
  }
}